﻿public namespace System.Collections
{
	public class DynList<T>
	{
		public event T Added;
		public event list<T> AddedRange;
		public event T Removed;
		public event list<T> RemovedRange;
		
		@Native("$System.DynList.Add")
		public void Add( T value );
		@Native("$System.DynList.AddRange")
		public void AddRange( list<T> value );
		@Native("$System.DynList.AddRange")
		public void AddRange( DynList<T> value );

		@Native("$System.DynList.Remove")
		public void Remove( T value );
		@Native("$System.DynList.RemoveRange")
		public void RemoveRange( list<T> value );
		@Native("$System.DynList.AddRange")
		public void RemoveRange( DynList<T> value );		

		@NativeMember("length")
		public num Length { get; }
		@Native("$System.DynList.Set")
		public void Set( num index, T value );
		@Native("$System.DynList.Get")
		public T Get( num index );
	}
}
